#ifndef __LXZ_DSTRING_H__
#define __LXZ_DSTRING_H__

typedef struct _lxz_dstring_t
{
    sint32  it_size;
    sint32  it_length;
    uint08* pt_string;
}lxz_dstring_t;


/******************************************************************************/
// DESCRIPTION:
//         new a buffer.
// PARAM: i_size_free, free size of space
// RETURN: p_new_buffer, NULL, fail; NON-NULL, success.
/******************************************************************************/
lxz_dstring_t* lxz_dstring_new(sint32 i_len_tryget);

sint32 lxz_dstring_append(lxz_dstring_t* p_mf_buf, uint08* p_data_buf, sint32 u_data_size);
sint32 lxz_dstring_merge(lxz_dstring_t* p_dst_buf, lxz_dstring_t* p_src_buf);
sint32 lxz_dstring_get(lxz_dstring_t* p_mf_buf, uint08* p_data_buf, sint32 u_buf_size);
sint32 lxz_dstring_copy(lxz_dstring_t* p_dst_buf, lxz_dstring_t* p_src_buf);
sint32 lxz_dstring_clear(lxz_dstring_t* p_mf_buf);
sint32 lxz_dstring_compare(lxz_dstring_t* p_dst_buf, lxz_dstring_t* p_src_buf);
sint32 lxz_dstring_delete(lxz_dstring_t* p_mf_buf);
sint32 lxz_dstring_upcase(lxz_dstring_t* p_a_dstr);
sint32 lxz_dstring_strncmp(lxz_dstring_t* p_dst_buf, uint08* p_ascii_str, sint32 i_str_len);
sint32 lxz_dstring_deltail(lxz_dstring_t* p_dst_buf, uint08 c);
sint32 lxz_dstring_getlength(lxz_dstring_t* p_a_dstring);
sint32 lxz_dstring_framelength(lxz_dstring_t* p_dst_buf, uint08 u_cur_endchar);
sint32 lxz_dstring_read(lxz_dstring_t* p_cur_dstring, uint08* p_buf_tryread, sint32 i_nb_tryread);



#endif /* __LXZ_DSTRING_H__ */

